/**
 * created by: Sam Olmsted 
 * last updated: 4-20-2012
 *
 *  Definitions: 
 * -- Board 
 * board is a 2d char array, the board, and a char message, any 
 * atari, captures, etc. 
 * 
 **/

#include <stdio.h> //included for in/out put operations
#include <stdlib.h> 
#include <ctype.h>
#include <string.h>//included for string comparison

// demension of the board
const int size = 9;

/**
 * The structure for the board. 
 * position holds the values of the board
 * message is the message to be printed 
 * capture_white the number of captured white stones 
 * capture_black the number of captured black stones 
 **/
typedef struct{
  char position[9][9]; 
  char* message; 
  int   capture_white;
  int   capture_black; 
} board;

/**
 * Prints out the board.
 */
void printBoard(board* b); 

/**
 * Creates a copy of the board.
 */
board* copyBoard(board* b);

/**
 * Created by: Sam Olmsted
 * 4-2-2012
 * Create a new board.
 * [ board := an empty board ]
 **/
board* createBoard();

/**
 * Sam Olmsted 
 * 4-2-2012
 * Make a move on the board and pass back any relevent message, so 
 * the board passed in must be the previous board. 
 * [ Precondition: the board is the previous 
 *    board   := the board after the given move, where 
 *            board->message        := atari message or capture message
 *            board->capture_white +:= captured stones for white
 *            board->capture_black +:= captured stones for black
 **/
void* move(board* b, int column, int row, char color);
